from llama_index.core import VectorStoreIndex,SimpleDirectoryReader,Settings
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
import config


embeddings_model = OpenAIEmbedding()
#将创建的嵌入模型赋值给全局设置的embed_model属性，
#这样在后续的索引构建过程中就会使用这个模型。
Settings.embed_model = embeddings_model
# o1-mini
# gpt-4o
# o1

llm = OpenAI(
    model="gpt-4o",
    model_kwargs={"trust_remote_code":True},
    tokenizer_kwargs={"trust_remote_code":True},
)

#设置全局的llm属性，这样在索引查询时会使用这个模型。
Settings.llm = llm

#从指定目录读取所有文档，并加载数据到内存中
documents = SimpleDirectoryReader("../data").load_data()

#创建一个VectorStoreIndex，并使用之前加载的文档来构建索引。
# 此索引将文档转换为向量，并存储这些向量以便于快速检索。
index = VectorStoreIndex.from_documents(documents)

# 创建一个查询引擎，这个引擎可以接收查询并返回相关文档的响应。
query_engine = index.as_query_engine()
response = query_engine.query("XTuner 是什么？")
print(response)
response = query_engine.query("RAG是什么?")
print(response)